Patch models create a representation of a category of input data by creating a set of patches that represent all of the constituent parts of the given category of input data. For example, a category of input data can be a particular kind of images, such as images of human faces. A significant advantage of patch models is that each constituent part of a category of data needs only one patch. Thus, because there will often be a large amount of repetition within the data in a category, a patch model can be much smaller than the data it is representing and still capture every aspect of the represented category of data.
Because of the benefits provided by patch models, the use of such models is increasing in popularity. Specifically, patch models for images have recently seen increased use for various low-level image processing tasks. These conventional image processing tasks use patch models to capture local correlations between pixels in a patch. Thus, if a patch in a first image matches well with a patch in a second image, then a second patch in the first image that shares pixels with the first patch should also match well to a similarly displaced second patch in the second image. Conventional image processing applications can use these local correlations to piece or cluster together groups of patches to form textures that can then be used to process portions of an image.
However, conventional patch models have difficulty in capturing longer-range correlations between more distant data elements in a set of data. Because of this, conventional patch models are not able to determine the overall context of a category of data on their own. For example, while a conventional patch model can represent small portions of an image based on local correlations between pixels within the image that are close together, the patch model cannot use these portions to create an entire image because it lacks the overall context of how the image is constructed. Thus, in applications that utilize these patch models, this context must be provided manually. Some conventional patch models have attempted to add some degree of context information by utilizing larger patches, but this approach is not fully effective. For example, larger patches are more difficult to match to data than smaller patches, which means that more patches are required to represent a category of data. Because using larger patches also requires the use of more patches, using larger patches can considerably increase the required size of a patch model. Additionally, patch models that utilize larger patches are still not able to capture the entire overall context of an image because, like patch models that utilize smaller patches, they can capture only local correlations between pixels within a patch.
Thus, in view of at least the above, there exists a need in the art for a patch model that is able to capture the entire overall context of a category of data without an undue sacrifice in size.